#import <UIKit/UIKit.h>
#import "ArleneRouterMacro.h"

typedef NS_ENUM (NSInteger, ArleneRouterType) {
    ArleneRouterTypeNone = 0,
    ArleneRouterTypeViewController = 1,
    ArleneRouterTypeBlock = 2
};

typedef id (^ArleneRouterBlock)(NSDictionary *params);

@interface ArleneRouter : NSObject
+ (instancetype)shareInstance;
//注册
- (void)map:(NSString *)route toBlock:(ArleneRouterBlock)block;
- (void)map:(NSString *)route toControllerClass:(Class)clazz;
- (void)map:(NSString *)route toControllerStr:(NSString*)clsStr;
//映射
- (UIViewController *)matchController:(NSString *)route;
- (ArleneRouterBlock)matchBlock:(NSString *)route;


- (id)callBlock:(NSString *)route;
- (ArleneRouterType)canRoute:(NSString *)route;

@end

///--------------------------------
/// @name UIViewController Category
///--------------------------------

@interface UIViewController (ArleneRouter)
@property (nonatomic, strong) NSDictionary *extArleneRouterParams;
-(BOOL)isRouterJump;
@end
